/**
 * A class representing a job. 
 * 
 * @author Jóhan Davidsen
 *
 */

public class Job {
	 
	//It basically consists many private fields with getters and setters assigned to them. 
	private String name;
	private int WCET;
	private int BCET;
	private int period;
	private int deadline;
	private String mappedTo;
	private int priority;
	private int release;
	private int time;
	
	/**
	 * 
	 * @param name
	 * @param BCET
	 * @param WCET
	 * @param period
	 * @param deadline
	 * @param mappedTo
	 * @param priority
	 */
	public Job(String name, int BCET, int WCET, int period,int deadline, String mappedTo, int priority) {
		 
		this.name 		= name;
		this.WCET 		= WCET;
		this.BCET 		= BCET;
		this.period 	= period;
		this.deadline 	= deadline;
		this.mappedTo 	= mappedTo;
		this.priority 	= priority;
	}
	
	/**
	 * 
	 * @return
	 */
	public String getName() {
		return name;
	}

	/**
	 * 
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}
		
	/**
	 * 
	 * @return
	 */
	public int getWCET() {
		return WCET;	
	}
	
	/**
	 * 
	 * @param wCET
	 */
	public void setWCET(int wCET) {
		WCET = wCET;
	}
	
	/**
	 * 
	 * @return
	 */
	public int getBCET() {
		return BCET;	
	}
	
	/**
	 * 
	 * @param bCET
	 */
	public void setBCET(int bCET) {
		BCET = bCET;
	}
	
	/**
	 * 
	 * @return
	 */
	public int getPeriod() {
		return period;	
	}
	
	/**
	 * 
	 * @param period
	 */
	public void setPeriod(int period) {
		this.period = period;
	}
	
	/**
	 * 
	 * @return
	 */
	public String getMappedTo() {
		return mappedTo;
	}
	
	/**
	 * 
	 * @param mappedTo
	 */
	public void setMappedTo(String mappedTo) {
		this.mappedTo = mappedTo;
	}
	
	/**
	 * 
	 * @return
	 */
	public int getDeadline() {
		return deadline;
	}
	
	/**
	 * 
	 * @param deadline
	 */
	public void setDeadline(int deadline) {
		this.deadline = deadline;	
	}	
	
	/**
	 * 
	 * @return
	 */
	public int getPriority() {
		return priority;
	}
	
	/**
	 * 
	 * @param priority
	 */
	public void setPriority(int priority) {
		this.priority = priority;
	}
	
	/**
	 * 
	 * @return
	 */
	public int getRelease() {
		return release;
	}
	
	/**
	 * 
	 * @param release
	 */
	public void setRelease(int release) {
		this.release = release;
	}
	
	/**
	 * 
	 * @return
	 */
	public int getTime() {
		return time;
	}
		
	/**
	 * 
	 * @param time
	 */
	public void setTime(int time) {
		this.time = time;
	}
	
	/**
	 * 
	 * @return
	 */
	public String print() {
		return "\nTask Name\t" 	+ getName() 	+ " " + 
				"\tBCET  " 		+ getBCET() 	+ " " +
				"\tWCET  "		+ getWCET() 	+ " " +
				"\tPeriod " 	+ getPeriod()	+ " " +
				"\tDeadline  " 	+ getDeadline() + " " +
				"\tPriority  "	+ getPriority() + " " +
				"\tMappedTo  "	+ getMappedTo();			
	}
}
